from numpy import (
    ndarray,
    zeros,
    sin,
    cos,
)

def spherical_to_cartesian_coordinates(
        spherical_coordinates: ndarray,
) -> ndarray:
    """
    将球坐标系中的坐标转换为笛卡尔坐标系中的坐标。

    参数:
        spherical_coordinates (ndarray): 包含球坐标的数组，顺序为 (半径, 仰角, 方位角)。

    返回:
        ndarray: 转换后的笛卡尔坐标，顺序为 (x, y, z)。
        
    转换公式:
        x = 半径 * sin(仰角) * cos(方位角)
        y = 半径 * sin(仰角) * sin(方位角)
        z = 半径 * cos(仰角)
    """

    # 创建一个长度为3的数组来存储笛卡尔坐标
    cartesian_coordinates = zeros(3)
    
    # 计算笛卡尔坐标中的x, y, z分量
    cartesian_coordinates[0] = spherical_coordinates[0] * sin(spherical_coordinates[1]) * cos(spherical_coordinates[2])
    cartesian_coordinates[1] = spherical_coordinates[0] * sin(spherical_coordinates[1]) * sin(spherical_coordinates[2])
    cartesian_coordinates[2] = spherical_coordinates[0] * cos(spherical_coordinates[1])

    return cartesian_coordinates
